﻿using IuliiaBot.Telegram;
using Telegram.Bot;
using Telegram.Bot.Polling;
using Telegram.Bot.Types.Enums;
using Microsoft.Extensions.Configuration;
using IuliiaBot.Telegram.Commands;

var config = new ConfigurationBuilder()
    .AddJsonFile("appsettings.json")
    .AddUserSecrets<Program>(optional: true)
    .Build();

var telegramConfig = config.GetSection("TelegramConfig");
string? token = telegramConfig["Token"];
if (string.IsNullOrWhiteSpace(token))
{
    throw new Exception("Telegram token is not set. Set it in the appsettings.json file.");
}

var botClient = new TelegramBotClient(token);
var receiverOptions = new ReceiverOptions
{
    AllowedUpdates = new[] // Обрабатываемые события бота
    {
        UpdateType.Message, // Сообщения
        UpdateType.CallbackQuery // Нажатия на inline кнопку
    },
    ThrowPendingUpdates = Convert.ToBoolean(telegramConfig["ThrowPendingUpdates"]), // Отвечает за обработку ожидающих запросов
    // True - не обрабатывать, False - обрабаыват
};
var commandFactory = new TelegramCommandFactory();
IuliiaTelegramService service = new IuliiaTelegramService(botClient, receiverOptions, commandFactory);

await service.Run();
